using System;

namespace Ndo.FM
{
	public delegate R Function<R>();
	public delegate R Function<R, P1>(P1 p1);
	public delegate R Function<R, P1, P2>(P1 p1, P2 p2);
	public delegate R Function<R, P1, P2, P3>(P1 p1, P2 p2, P3 p3);
	public delegate R Function<R, P1, P2, P3, P4>(P1 p1, P2 p2, P3 p3, P4 p4);
	public delegate R Function<R, P1, P2, P3, P4, P5>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15);
	public delegate R Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16);
	public class AFunction<R, P1>
	{
		public readonly Function<R, P1> F;
		public P1 Parameter1;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1>)Delegate.CreateDelegate(typeof(Function<R, P1>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1)
		{
			F = (Function<R, P1>)Delegate.CreateDelegate(typeof(Function<R, P1>), f.Target, f.Method);
			Parameter1 = p1;
		}
		public R Call()
		{
			return F(Parameter1);
		}
		public static Function<R> From(Delegate f, P1 p1)
		{
			return new AFunction<R, P1>(f, p1).Call;
		}
	}
	public class AFunction<R, P1, P2>
	{
		public readonly Function<R, P1, P2> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2>)Delegate.CreateDelegate(typeof(Function<R, P1, P2>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2)
		{
			F = (Function<R, P1, P2>)Delegate.CreateDelegate(typeof(Function<R, P1, P2>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2)
		{
			return new AFunction<R, P1, P2>(f, p1, p2).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2)
		{
			return new AFunction<R, P1, P2>(f, default(P1), p2).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2)
		{
			return new AFunction<R, P1, P2>(f, default(P1), p2).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2>(f, p1, default(P2)).Call2;
		}
		public static Function<R, P2> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2>(f, p1, default(P2)).Call2;
		}
	}
	public class AFunction<R, P1, P2, P3>
	{
		public readonly Function<R, P1, P2, P3> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3)
		{
			F = (Function<R, P1, P2, P3>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3)
		{
			return new AFunction<R, P1, P2, P3>(f, p1, p2, p3).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3)
		{
			return new AFunction<R, P1, P2, P3>(f, default(P1), p2, p3).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3)
		{
			return new AFunction<R, P1, P2, P3>(f, default(P1), p2, p3).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3)
		{
			return new AFunction<R, P1, P2, P3>(f, default(P1), default(P2), p3).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3)
		{
			return new AFunction<R, P1, P2, P3>(f, default(P1), default(P2), p3).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3)
		{
			return new AFunction<R, P1, P2, P3>(f, p1, default(P2), p3).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3>(f, p1, default(P2), default(P3)).Call2;
		}
		public static Function<R, P2, P3> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3>(f, p1, default(P2), default(P3)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3>(f, p1, p2, default(P3)).Call3;
		}
		public static Function<R, P3> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3>(f, p1, p2, default(P3)).Call3;
		}
	}
	public class AFunction<R, P1, P2, P3, P4>
	{
		public readonly Function<R, P1, P2, P3, P4> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4)
		{
			F = (Function<R, P1, P2, P3, P4>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, p2, p3, p4).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, default(P1), p2, p3, p4).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, default(P1), p2, p3, p4).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, default(P1), default(P2), p3, p4).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, default(P1), default(P2), p3, p4).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, default(P1), default(P2), default(P3), p4).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, default(P1), default(P2), default(P3), p4).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, default(P2), p3, p4).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, default(P2), default(P3), p4).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, default(P2), default(P3), default(P4)).Call2;
		}
		public static Function<R, P2, P3, P4> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, default(P2), default(P3), default(P4)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, p2, default(P3), p4).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, p2, default(P3), default(P4)).Call3;
		}
		public static Function<R, P3, P4> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, p2, default(P3), default(P4)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, p2, p3, default(P4)).Call4;
		}
		public static Function<R, P4> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4>(f, p1, p2, p3, default(P4)).Call4;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5>
	{
		public readonly Function<R, P1, P2, P3, P4, P5> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			F = (Function<R, P1, P2, P3, P4, P5>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, p3, p4, p5).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, default(P1), p2, p3, p4, p5).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, default(P1), p2, p3, p4, p5).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, default(P1), default(P2), p3, p4, p5).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, default(P1), default(P2), p3, p4, p5).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, default(P1), default(P2), default(P3), p4, p5).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, default(P1), default(P2), default(P3), p4, p5).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, default(P1), default(P2), default(P3), default(P4), p5).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, default(P1), default(P2), default(P3), default(P4), p5).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, default(P2), p3, p4, p5).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, default(P2), default(P3), p4, p5).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, default(P2), default(P3), default(P4), p5).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, default(P2), default(P3), default(P4), default(P5)).Call2;
		}
		public static Function<R, P2, P3, P4, P5> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, default(P2), default(P3), default(P4), default(P5)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, default(P3), p4, p5).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, default(P3), default(P4), p5).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, default(P3), default(P4), default(P5)).Call3;
		}
		public static Function<R, P3, P4, P5> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, default(P3), default(P4), default(P5)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, p3, default(P4), p5).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, p3, default(P4), default(P5)).Call4;
		}
		public static Function<R, P4, P5> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, p3, default(P4), default(P5)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, p3, p4, default(P5)).Call5;
		}
		public static Function<R, P5> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5>(f, p1, p2, p3, p4, default(P5)).Call5;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, p5, p6).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), p2, p3, p4, p5, p6).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), p2, p3, p4, p5, p6).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), p3, p4, p5, p6).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), p3, p4, p5, p6).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), p4, p5, p6).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), p4, p5, p6).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), default(P4), p5, p6).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), default(P4), p5, p6).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, default(P2), p3, p4, p5, p6).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), p4, p5, p6).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), default(P4), p5, p6).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), default(P4), default(P5), p6).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), p4, p5, p6).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), default(P4), p5, p6).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), default(P4), default(P5), p6).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), default(P4), default(P5), default(P6)).Call3;
		}
		public static Function<R, P3, P4, P5, P6> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, default(P3), default(P4), default(P5), default(P6)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, default(P4), p5, p6).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, default(P4), default(P5), p6).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, default(P4), default(P5), default(P6)).Call4;
		}
		public static Function<R, P4, P5, P6> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, default(P4), default(P5), default(P6)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, default(P5), p6).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, default(P5), default(P6)).Call5;
		}
		public static Function<R, P5, P6> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, default(P5), default(P6)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, p5, default(P6)).Call6;
		}
		public static Function<R, P6> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6>(f, p1, p2, p3, p4, p5, default(P6)).Call6;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, p6, p7).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), p2, p3, p4, p5, p6, p7).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), p2, p3, p4, p5, p6, p7).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), p3, p4, p5, p6, p7).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), p3, p4, p5, p6, p7).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), p3, p4, p5, p6, p7).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), p4, p5, p6, p7).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), p4, p5, p6, p7).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), p5, p6, p7).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), p5, p6, p7).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), default(P5), p6, p7).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7)).Call4;
		}
		public static Function<R, P4, P5, P6, P7> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, default(P5), p6, p7).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, default(P5), default(P6), p7).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7)).Call5;
		}
		public static Function<R, P5, P6, P7> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, default(P6), p7).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, default(P6), default(P7)).Call6;
		}
		public static Function<R, P6, P7> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, default(P6), default(P7)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, p6, default(P7)).Call7;
		}
		public static Function<R, P7> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7>(f, p1, p2, p3, p4, p5, p6, default(P7)).Call7;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, p7, p8).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), p2, p3, p4, p5, p6, p7, p8).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), p2, p3, p4, p5, p6, p7, p8).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), p3, p4, p5, p6, p7, p8).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), p4, p5, p6, p7, p8).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), p5, p6, p7, p8).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), p6, p7, p8).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8)).Call5;
		}
		public static Function<R, P5, P6, P7, P8> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, default(P6), p7, p8).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8)).Call6;
		}
		public static Function<R, P6, P7, P8> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, default(P7), p8).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8)).Call7;
		}
		public static Function<R, P7, P8> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, p7, default(P8)).Call8;
		}
		public static Function<R, P8> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8>(f, p1, p2, p3, p4, p5, p6, p7, default(P8)).Call8;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9);
		}
		public static Function<R, P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9)).Call5;
		}
		public static Function<R, P5, P6, P7, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9);
		}
		public static Function<R, P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9)).Call6;
		}
		public static Function<R, P6, P7, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9);
		}
		public static Function<R, P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9)).Call7;
		}
		public static Function<R, P7, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9).Call8;
		}
		public R Call8(P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9);
		}
		public static Function<R, P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9)).Call8;
		}
		public static Function<R, P8, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9)).Call8;
		}
		public R Call9(P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9);
		}
		public static Function<R, P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9)).Call9;
		}
		public static Function<R, P9> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9)).Call9;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10);
		}
		public static Function<R, P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call5;
		}
		public static Function<R, P5, P6, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10);
		}
		public static Function<R, P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10);
		}
		public static Function<R, P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10)).Call6;
		}
		public static Function<R, P6, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10);
		}
		public static Function<R, P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10);
		}
		public static Function<R, P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10)).Call7;
		}
		public static Function<R, P7, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10).Call8;
		}
		public R Call8(P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10);
		}
		public static Function<R, P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10);
		}
		public static Function<R, P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10)).Call8;
		}
		public static Function<R, P8, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10)).Call8;
		}
		public R Call9(P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10);
		}
		public static Function<R, P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10).Call9;
		}
		public R Call9(P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10);
		}
		public static Function<R, P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10)).Call9;
		}
		public static Function<R, P9, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10)).Call9;
		}
		public R Call10(P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10);
		}
		public static Function<R, P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10)).Call10;
		}
		public static Function<R, P10> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10)).Call10;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call5;
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11);
		}
		public static Function<R, P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call6;
		}
		public static Function<R, P6, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11);
		}
		public static Function<R, P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11);
		}
		public static Function<R, P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11)).Call7;
		}
		public static Function<R, P7, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11).Call8;
		}
		public R Call8(P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11);
		}
		public static Function<R, P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11);
		}
		public static Function<R, P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11)).Call8;
		}
		public static Function<R, P8, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11)).Call8;
		}
		public R Call9(P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11);
		}
		public static Function<R, P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11).Call9;
		}
		public R Call9(P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11);
		}
		public static Function<R, P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11);
		}
		public static Function<R, P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11)).Call9;
		}
		public static Function<R, P9, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11)).Call9;
		}
		public R Call10(P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11);
		}
		public static Function<R, P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11).Call10;
		}
		public R Call10(P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11);
		}
		public static Function<R, P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11)).Call10;
		}
		public static Function<R, P10, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11)).Call10;
		}
		public R Call11(P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11);
		}
		public static Function<R, P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11)).Call11;
		}
		public static Function<R, P11> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11)).Call11;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call5;
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call6;
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call7;
		}
		public static Function<R, P7, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12).Call8;
		}
		public R Call8(P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12);
		}
		public static Function<R, P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12)).Call8;
		}
		public static Function<R, P8, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12)).Call8;
		}
		public R Call9(P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12);
		}
		public static Function<R, P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12).Call9;
		}
		public R Call9(P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12);
		}
		public static Function<R, P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12);
		}
		public static Function<R, P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12)).Call9;
		}
		public static Function<R, P9, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12)).Call9;
		}
		public R Call10(P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12);
		}
		public static Function<R, P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12).Call10;
		}
		public R Call10(P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12);
		}
		public static Function<R, P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12);
		}
		public static Function<R, P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12)).Call10;
		}
		public static Function<R, P10, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12)).Call10;
		}
		public R Call11(P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12);
		}
		public static Function<R, P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12).Call11;
		}
		public R Call11(P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12);
		}
		public static Function<R, P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12)).Call11;
		}
		public static Function<R, P11, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12)).Call11;
		}
		public R Call12(P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12);
		}
		public static Function<R, P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12)).Call12;
		}
		public static Function<R, P12> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12)).Call12;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public P13 Parameter13;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
			Parameter13 = p13;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At1(Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtBegin(Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12, p13).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call5;
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12, p13).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12, p13).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12, p13).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call6;
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12, p13).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12, p13).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12, p13).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12, p13).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call7;
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12, p13).Call8;
		}
		public R Call8(P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12, p13).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12, p13).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12, p13).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), p13).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call8;
		}
		public static Function<R, P8, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13)).Call8;
		}
		public R Call9(P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12, p13).Call9;
		}
		public R Call9(P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12, p13).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12, p13).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), p13).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13);
		}
		public static Function<R, P9, P10, P11, P12, P13> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13)).Call9;
		}
		public static Function<R, P9, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13)).Call9;
		}
		public R Call10(P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12, Parameter13);
		}
		public static Function<R, P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12, p13).Call10;
		}
		public R Call10(P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12, p13).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, Parameter13);
		}
		public static Function<R, P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), p13).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13);
		}
		public static Function<R, P10, P11, P12, P13> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13)).Call10;
		}
		public static Function<R, P10, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13)).Call10;
		}
		public R Call11(P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12, Parameter13);
		}
		public static Function<R, P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12, p13).Call11;
		}
		public R Call11(P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, Parameter13);
		}
		public static Function<R, P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), p13).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13);
		}
		public static Function<R, P11, P12, P13> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13)).Call11;
		}
		public static Function<R, P11, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13)).Call11;
		}
		public R Call12(P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, Parameter13);
		}
		public static Function<R, P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P13 p13)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), p13).Call12;
		}
		public R Call12(P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13);
		}
		public static Function<R, P12, P13> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13)).Call12;
		}
		public static Function<R, P12, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13)).Call12;
		}
		public R Call13(P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13);
		}
		public static Function<R, P13> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13)).Call13;
		}
		public static Function<R, P13> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13)).Call13;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public P13 Parameter13;
		public P14 Parameter14;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
			Parameter13 = p13;
			Parameter14 = p14;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At1(Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtBegin(Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At1(Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtBegin(Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At2(P1 p1, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At3(P1 p1, P2 p2, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At4(P1 p1, P2 p2, P3 p3, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call5;
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12, p13, p14).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call6;
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12, p13, p14).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12, p13, p14).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12, p13, p14).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call7;
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12, p13, p14).Call8;
		}
		public R Call8(P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12, p13, p14).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12, p13, p14).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12, p13, p14).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call8;
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call8;
		}
		public R Call9(P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12, p13, p14).Call9;
		}
		public R Call9(P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12, p13, p14).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12, p13, p14).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), p13, p14).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P9, P10, P11, P12, P13> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), p14).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P9, P10, P11, P12, P13, P14> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call9;
		}
		public static Function<R, P9, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14)).Call9;
		}
		public R Call10(P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12, p13, p14).Call10;
		}
		public R Call10(P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12, p13, p14).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), p13, p14).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P10, P11, P12, P13> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), p14).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14);
		}
		public static Function<R, P10, P11, P12, P13, P14> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14)).Call10;
		}
		public static Function<R, P10, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14)).Call10;
		}
		public R Call11(P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12, Parameter13, Parameter14);
		}
		public static Function<R, P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12, p13, p14).Call11;
		}
		public R Call11(P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), p13, p14).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, Parameter14);
		}
		public static Function<R, P11, P12, P13> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), p14).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14);
		}
		public static Function<R, P11, P12, P13, P14> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14)).Call11;
		}
		public static Function<R, P11, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14)).Call11;
		}
		public R Call12(P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, Parameter13, Parameter14);
		}
		public static Function<R, P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P13 p13, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), p13, p14).Call12;
		}
		public R Call12(P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, Parameter14);
		}
		public static Function<R, P12, P13> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), p14).Call12;
		}
		public R Call12(P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14);
		}
		public static Function<R, P12, P13, P14> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14)).Call12;
		}
		public static Function<R, P12, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14)).Call12;
		}
		public R Call13(P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, Parameter14);
		}
		public static Function<R, P13> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P14 p14)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), p14).Call13;
		}
		public R Call13(P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14);
		}
		public static Function<R, P13, P14> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14)).Call13;
		}
		public static Function<R, P13, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14)).Call13;
		}
		public R Call14(P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14);
		}
		public static Function<R, P14> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14)).Call14;
		}
		public static Function<R, P14> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14)).Call14;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public P13 Parameter13;
		public P14 Parameter14;
		public P15 Parameter15;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
			Parameter13 = p13;
			Parameter14 = p14;
			Parameter15 = p15;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At1(Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtBegin(Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At1(Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtBegin(Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At1(Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtBegin(Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At2(P1 p1, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At2(P1 p1, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At3(P1 p1, P2 p2, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At3(P1 p1, P2 p2, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At4(P1 p1, P2 p2, P3 p3, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At4(P1 p1, P2 p2, P3 p3, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call5;
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call6;
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12, p13, p14, p15).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14, P15> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call7;
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12, p13, p14, p15).Call8;
		}
		public R Call8(P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12, p13, p14, p15).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12, p13, p14, p15).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14, P15> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call8;
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call8;
		}
		public R Call9(P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12, p13, p14, p15).Call9;
		}
		public R Call9(P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12, p13, p14, p15).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12, p13, p14, p15).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), p13, p14, p15).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P9, P10, P11, P12, P13> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P9, P10, P11, P12, P13, P14> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P9, P10, P11, P12, P13, P14, P15> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call9;
		}
		public static Function<R, P9, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call9;
		}
		public R Call10(P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12, p13, p14, p15).Call10;
		}
		public R Call10(P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12, p13, p14, p15).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), p13, p14, p15).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P10, P11, P12, P13> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), p14, p15).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P10, P11, P12, P13, P14> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), p15).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P10, P11, P12, P13, P14, P15> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call10;
		}
		public static Function<R, P10, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15)).Call10;
		}
		public R Call11(P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12, p13, p14, p15).Call11;
		}
		public R Call11(P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), p13, p14, p15).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P11, P12, P13> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), p14, p15).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P11, P12, P13, P14> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), p15).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, p15);
		}
		public static Function<R, P11, P12, P13, P14, P15> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15)).Call11;
		}
		public static Function<R, P11, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15)).Call11;
		}
		public R Call12(P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, Parameter13, Parameter14, Parameter15);
		}
		public static Function<R, P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P13 p13, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), p13, p14, p15).Call12;
		}
		public R Call12(P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P12, P13> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), p14, p15).Call12;
		}
		public R Call12(P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, Parameter15);
		}
		public static Function<R, P12, P13, P14> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), p15).Call12;
		}
		public R Call12(P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, p15);
		}
		public static Function<R, P12, P13, P14, P15> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15)).Call12;
		}
		public static Function<R, P12, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15)).Call12;
		}
		public R Call13(P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, Parameter14, Parameter15);
		}
		public static Function<R, P13> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P14 p14, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), p14, p15).Call13;
		}
		public R Call13(P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, Parameter15);
		}
		public static Function<R, P13, P14> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), p15).Call13;
		}
		public R Call13(P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, p15);
		}
		public static Function<R, P13, P14, P15> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15)).Call13;
		}
		public static Function<R, P13, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15)).Call13;
		}
		public R Call14(P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, Parameter15);
		}
		public static Function<R, P14> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f, P15 p15)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), p15).Call14;
		}
		public R Call14(P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, p15);
		}
		public static Function<R, P14, P15> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15)).Call14;
		}
		public static Function<R, P14, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15)).Call14;
		}
		public R Call15(P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, p15);
		}
		public static Function<R, P15> At15(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15)).Call15;
		}
		public static Function<R, P15> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15)).Call15;
		}
	}
	public class AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>
	{
		public readonly Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> F;
		public P1 Parameter1;
		public P2 Parameter2;
		public P3 Parameter3;
		public P4 Parameter4;
		public P5 Parameter5;
		public P6 Parameter6;
		public P7 Parameter7;
		public P8 Parameter8;
		public P9 Parameter9;
		public P10 Parameter10;
		public P11 Parameter11;
		public P12 Parameter12;
		public P13 Parameter13;
		public P14 Parameter14;
		public P15 Parameter15;
		public P16 Parameter16;
		public AFunction(Delegate f)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>), f.Target, f.Method);
		}
		public AFunction(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			F = (Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>)Delegate.CreateDelegate(typeof(Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>), f.Target, f.Method);
			Parameter1 = p1;
			Parameter2 = p2;
			Parameter3 = p3;
			Parameter4 = p4;
			Parameter5 = p5;
			Parameter6 = p6;
			Parameter7 = p7;
			Parameter8 = p8;
			Parameter9 = p9;
			Parameter10 = p10;
			Parameter11 = p11;
			Parameter12 = p12;
			Parameter13 = p13;
			Parameter14 = p14;
			Parameter15 = p15;
			Parameter16 = p16;
		}
		public R Call()
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R> From(Delegate f, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call;
		}
		public R Call1(P1 p1)
		{
			return F(p1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1> At1(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1> AtBegin(Delegate f, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2)
		{
			return F(p1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2> At1(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2> AtBegin(Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3)
		{
			return F(p1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3> At1(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3> AtBegin(Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4)
		{
			return F(p1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4> At1(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4> AtBegin(Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(p1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5> At1(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5> AtBegin(Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(p1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> At1(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6> AtBegin(Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> At1(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7> AtBegin(Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> At1(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8> AtBegin(Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> At1(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9> AtBegin(Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> At1(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> AtBegin(Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At1(Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> AtBegin(Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At1(Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> AtBegin(Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At1(Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> AtBegin(Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At1(Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> AtBegin(Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call1;
		}
		public R Call1(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At1(Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call1;
		}
		public static Function<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> AtBegin(Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, default(P1), default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call1;
		}
		public R Call2(P2 p2)
		{
			return F(Parameter1, p2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2> At2(P1 p1, Delegate f, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3)
		{
			return F(Parameter1, p2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3> At2(P1 p1, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4)
		{
			return F(Parameter1, p2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4> At2(P1 p1, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, p2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5> At2(P1 p1, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6> At2(P1 p1, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7> At2(P1 p1, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8> At2(P1 p1, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9> At2(P1 p1, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10> At2(P1 p1, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> At2(P1 p1, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At2(P1 p1, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At2(P1 p1, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At2(P1 p1, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At2(P1 p1, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call2;
		}
		public R Call2(P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At2(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call2;
		}
		public static Function<R, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, default(P2), default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call2;
		}
		public R Call3(P3 p3)
		{
			return F(Parameter1, Parameter2, p3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3> At3(P1 p1, P2 p2, Delegate f, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4)
		{
			return F(Parameter1, Parameter2, p3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4> At3(P1 p1, P2 p2, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5> At3(P1 p1, P2 p2, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6> At3(P1 p1, P2 p2, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7> At3(P1 p1, P2 p2, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8> At3(P1 p1, P2 p2, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9> At3(P1 p1, P2 p2, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10> At3(P1 p1, P2 p2, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11> At3(P1 p1, P2 p2, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> At3(P1 p1, P2 p2, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At3(P1 p1, P2 p2, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At3(P1 p1, P2 p2, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At3(P1 p1, P2 p2, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call3;
		}
		public R Call3(P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At3(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call3;
		}
		public static Function<R, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, default(P3), default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call3;
		}
		public R Call4(P4 p4)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4> At4(P1 p1, P2 p2, P3 p3, Delegate f, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5> At4(P1 p1, P2 p2, P3 p3, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6> At4(P1 p1, P2 p2, P3 p3, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7> At4(P1 p1, P2 p2, P3 p3, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7, P8> At4(P1 p1, P2 p2, P3 p3, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9> At4(P1 p1, P2 p2, P3 p3, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10> At4(P1 p1, P2 p2, P3 p3, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11> At4(P1 p1, P2 p2, P3 p3, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12> At4(P1 p1, P2 p2, P3 p3, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> At4(P1 p1, P2 p2, P3 p3, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At4(P1 p1, P2 p2, P3 p3, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At4(P1 p1, P2 p2, P3 p3, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call4;
		}
		public R Call4(P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At4(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call4;
		}
		public static Function<R, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, default(P4), default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call4;
		}
		public R Call5(P5 p5)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6, P7> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6, P7, P8> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6, P7, P8, P9> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call5;
		}
		public R Call5(P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At5(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call5;
		}
		public static Function<R, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, default(P5), default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call5;
		}
		public R Call6(P6 p6)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P6> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), p7, p8, p9, p10, p11, p12, p13, p14, p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P6, P7> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P6, P7, P8> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P6, P7, P8, P9> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P6, P7, P8, P9, P10> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call6;
		}
		public R Call6(P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At6(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call6;
		}
		public static Function<R, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, default(P6), default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call6;
		}
		public R Call7(P7 p7)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P7> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), p8, p9, p10, p11, p12, p13, p14, p15, p16).Call7;
		}
		public R Call7(P7 p7, P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P7, P8> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P7, P8, P9> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P7, P8, P9, P10> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P7, P8, P9, P10, P11> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14, P15> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call7;
		}
		public R Call7(P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> At7(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call7;
		}
		public static Function<R, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, default(P7), default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call7;
		}
		public R Call8(P8 p8)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P8> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), p9, p10, p11, p12, p13, p14, p15, p16).Call8;
		}
		public R Call8(P8 p8, P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P8, P9> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), p10, p11, p12, p13, p14, p15, p16).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P8, P9, P10> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P8, P9, P10, P11> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P8, P9, P10, P11, P12> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14, P15> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call8;
		}
		public R Call8(P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14, P15, P16> At8(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call8;
		}
		public static Function<R, P8, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, default(P8), default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call8;
		}
		public R Call9(P9 p9)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P9> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), p10, p11, p12, p13, p14, p15, p16).Call9;
		}
		public R Call9(P9 p9, P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P9, P10> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), p11, p12, p13, p14, p15, p16).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P9, P10, P11> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), p12, p13, p14, p15, p16).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P9, P10, P11, P12> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), p13, p14, p15, p16).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P9, P10, P11, P12, P13> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P9, P10, P11, P12, P13, P14> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P9, P10, P11, P12, P13, P14, P15> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call9;
		}
		public R Call9(P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, p9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P9, P10, P11, P12, P13, P14, P15, P16> At9(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call9;
		}
		public static Function<R, P9, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, default(P9), default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call9;
		}
		public R Call10(P10 p10)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P10> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), p11, p12, p13, p14, p15, p16).Call10;
		}
		public R Call10(P10 p10, P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P10, P11> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), p12, p13, p14, p15, p16).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P10, P11, P12> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), p13, p14, p15, p16).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P10, P11, P12, P13> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), p14, p15, p16).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P10, P11, P12, P13, P14> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), p15, p16).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P10, P11, P12, P13, P14, P15> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call10;
		}
		public R Call10(P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, p10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P10, P11, P12, P13, P14, P15, P16> At10(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call10;
		}
		public static Function<R, P10, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, default(P10), default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call10;
		}
		public R Call11(P11 p11)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, Parameter12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P11> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), p12, p13, p14, p15, p16).Call11;
		}
		public R Call11(P11 p11, P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P11, P12> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), p13, p14, p15, p16).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P11, P12, P13> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), p14, p15, p16).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P11, P12, P13, P14> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), p15, p16).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P11, P12, P13, P14, P15> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15), p16).Call11;
		}
		public R Call11(P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, p11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P11, P12, P13, P14, P15, P16> At11(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call11;
		}
		public static Function<R, P11, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, default(P11), default(P12), default(P13), default(P14), default(P15), default(P16)).Call11;
		}
		public R Call12(P12 p12)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, Parameter13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P12> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), p13, p14, p15, p16).Call12;
		}
		public R Call12(P12 p12, P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P12, P13> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), p14, p15, p16).Call12;
		}
		public R Call12(P12 p12, P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P12, P13, P14> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), p15, p16).Call12;
		}
		public R Call12(P12 p12, P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P12, P13, P14, P15> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15), p16).Call12;
		}
		public R Call12(P12 p12, P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, p12, p13, p14, p15, p16);
		}
		public static Function<R, P12, P13, P14, P15, P16> At12(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15), default(P16)).Call12;
		}
		public static Function<R, P12, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, default(P12), default(P13), default(P14), default(P15), default(P16)).Call12;
		}
		public R Call13(P13 p13)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, Parameter14, Parameter15, Parameter16);
		}
		public static Function<R, P13> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P14 p14, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), p14, p15, p16).Call13;
		}
		public R Call13(P13 p13, P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P13, P14> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), p15, p16).Call13;
		}
		public R Call13(P13 p13, P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, p15, Parameter16);
		}
		public static Function<R, P13, P14, P15> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15), p16).Call13;
		}
		public R Call13(P13 p13, P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, p13, p14, p15, p16);
		}
		public static Function<R, P13, P14, P15, P16> At13(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15), default(P16)).Call13;
		}
		public static Function<R, P13, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, default(P13), default(P14), default(P15), default(P16)).Call13;
		}
		public R Call14(P14 p14)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, Parameter15, Parameter16);
		}
		public static Function<R, P14> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f, P15 p15, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), p15, p16).Call14;
		}
		public R Call14(P14 p14, P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, p15, Parameter16);
		}
		public static Function<R, P14, P15> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15), p16).Call14;
		}
		public R Call14(P14 p14, P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, p14, p15, p16);
		}
		public static Function<R, P14, P15, P16> At14(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15), default(P16)).Call14;
		}
		public static Function<R, P14, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, default(P14), default(P15), default(P16)).Call14;
		}
		public R Call15(P15 p15)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, p15, Parameter16);
		}
		public static Function<R, P15> At15(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f, P16 p16)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15), p16).Call15;
		}
		public R Call15(P15 p15, P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, p15, p16);
		}
		public static Function<R, P15, P16> At15(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15), default(P16)).Call15;
		}
		public static Function<R, P15, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, default(P15), default(P16)).Call15;
		}
		public R Call16(P16 p16)
		{
			return F(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5, Parameter6, Parameter7, Parameter8, Parameter9, Parameter10, Parameter11, Parameter12, Parameter13, Parameter14, Parameter15, p16);
		}
		public static Function<R, P16> At16(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, default(P16)).Call16;
		}
		public static Function<R, P16> AtEnd(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10, P11 p11, P12 p12, P13 p13, P14 p14, P15 p15, Delegate f)
		{
			return new AFunction<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16>(f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, default(P16)).Call16;
		}
	}
}
